﻿using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace EncuentraWEB
{
    public partial class Formulario_web14 : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            var sUser = (string)Session["User"];
            if (sUser != "admin")
            {
                Response.Redirect("~\\default.aspx");
                return;
            }
            Button1.Attributes.Add("onclick", "window.close();");
            var arq = new ArqJsCls();
            var obj = new clsRecorridos();
            if (!this.IsPostBack)
            {
                try
                {
                    var objTipoPuntos = new clsTipoPuntos();
                    DropTipoPuntos.DataTextField = "varDescripcion";
                    DropTipoPuntos.DataValueField = "intIdTipoPunto";
                    var dtTipoPuntos = objTipoPuntos.buscar();
                    DropTipoPuntos.DataSource = dtTipoPuntos;
                    DropTipoPuntos.DataBind();
                    DropTipoPuntos.SelectedIndex = DropTipoPuntos.Items.Count - 1;
                }
                catch (Exception ex)
                {
                }
        }
       }

        protected void Button2_Click(object sender, EventArgs e)
        {
            var strPunto = Request.QueryString["puntos"];
            var strRecorrido = Request.QueryString["Recorrido"];
            var strPosicion = Request.QueryString["posicion"];
            var indice = strPunto.IndexOf(",");
            var strLatitud = strPunto.Substring(1,indice-2);
            var strLongitud = strPunto.Substring(indice+2, strPunto.Length-indice-3);
            var context = new EncuentraEntities();
            var linqTipoPunto = context.TipoPuntos.Where(x => x.intIdTipoPunto == Convert.ToByte(this.DropTipoPuntos.SelectedValue));
            var IdPunto = 1;
            var IdPosicion = 0;
            if (strPosicion!="N")
            {
                IdPosicion = Convert.ToInt32(strPosicion)+1;
            }
            
            try
            {
                var de = from x in context.PuntosRecorrido
                         select x;
                var id = de.Max(x => x.intIdPuntoRecorrido);
                IdPunto = id + 1;
            }
            catch (Exception)
            {

            }
            try
            {
                
                var linqPuntoRecorrido = context.PuntosRecorrido.Where(x => x.intIdRecorrido == Convert.ToInt32(strRecorrido));
                if (IdPosicion ==0)
                {
                    var idPosicion = linqPuntoRecorrido.Max(x => x.intIdPosicion);
                    IdPosicion = Convert.ToInt32(idPosicion + 1);
                }
               
            }
            catch (Exception)
            {

            }
            var entPunto = new PuntosRecorrido()
                               {
                                  intIdPuntoRecorrido = IdPunto,
                                  varDescripcion = txtDescripcion.Text,
                                  intIdRecorrido = Convert.ToInt32(strRecorrido),
                                  decLatitud = Convert.ToDecimal(strLatitud.Replace(".",",")),
                                  decLongitud = Convert.ToDecimal(strLongitud.Replace(".", ",")),
                                  intIdEstado = 0,
                                  datFechaEstado = DateTime.Now,
                                  intIdPosicion = IdPosicion
                                               
                                };
            
            entPunto.TipoPuntos =context.TipoPuntos.Where(x => x.intIdTipoPunto==1).First();
            int rec = Convert.ToInt32(strRecorrido);
            entPunto.Recorridos = context.Recorridos.Where(x => x.intIdRecorrido ==rec).First();
            context.AddToPuntosRecorrido(entPunto);
            var idrec = Convert.ToInt32(strRecorrido);
            var puntos = from x in context.PuntosRecorrido
                         where x.intIdPosicion >= IdPosicion
                               && x.intIdRecorrido == idrec
                         select x;

            foreach (var punto in puntos)
            {
                punto.intIdPosicion = punto.intIdPosicion + 1;

            }

      

            context.SaveChanges();
            context.Dispose();

            Response.Write("<script language=\"JavaScript\">");
            Response.Write("javascript:window.close();");
            Response.Write("</script>");

        }

        protected void Button1_Click(object sender, EventArgs e)
        {

        }
    }
}
